home *** CD-ROM | disk | FTP | other *** search
- package netscape.ldap.ber.stream;
-
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.OutputStream;
-
- public class BEROctetString extends BERElement {
- private byte[] m_value;
-
- public BEROctetString(String var1) {
- if (var1 != null) {
- try {
- this.m_value = var1.getBytes("UTF8");
- } catch (Throwable var2) {
- }
- }
- }
-
- public BEROctetString(byte[] var1) {
- this.m_value = var1;
- }
-
- public BEROctetString(byte[] var1, int var2, int var3) {
- this.m_value = new byte[var3 - var2];
-
- for(int var4 = 0; var4 < var3 - var2; ++var4) {
- this.m_value[var4] = var1[var2 + var4];
- }
-
- }
-
- public BEROctetString(BERTagDecoder var1, InputStream var2, int[] var3) throws IOException {
- int var4 = BERElement.readLengthOctets(var2, var3);
- int[] var5 = new int[1];
- Object var6 = null;
- if (var4 != -1) {
- var3[0] += var4;
- this.m_value = new byte[var4];
- var2.read(this.m_value, 0, var4);
- } else {
- do {
- var5[0] = 0;
- var10 = BERElement.getElement(var1, var2, var5);
- if (var10 != null) {
- BEROctetString var7 = (BEROctetString)var10;
- byte[] var8 = var7.getValue();
- if (this.m_value == null) {
- this.m_value = new byte[var8.length];
- System.arraycopy(var8, 0, this.m_value, 0, var8.length);
- } else {
- byte[] var9 = new byte[this.m_value.length + var8.length];
- System.arraycopy(this.m_value, 0, var9, 0, this.m_value.length);
- System.arraycopy(var8, 0, var9, this.m_value.length, var8.length);
- this.m_value = var9;
- }
- }
- } while(var10 != null);
-
- }
- }
-
- public BEROctetString(InputStream var1, int[] var2) throws IOException {
- int var3 = BERElement.readLengthOctets(var1, var2);
- if (var3 > 0) {
- this.m_value = new byte[var3];
-
- for(int var4 = 0; var4 < var3; ++var4) {
- this.m_value[var4] = (byte)var1.read();
- }
-
- var2[0] += var3;
- }
-
- }
-
- public void write(OutputStream var1) throws IOException {
- var1.write(4);
- if (this.m_value == null) {
- BERElement.sendDefiniteLength(var1, 0);
- } else {
- BERElement.sendDefiniteLength(var1, this.m_value.length);
- var1.write(this.m_value, 0, this.m_value.length);
- }
- }
-
- public byte[] getValue() {
- return this.m_value;
- }
-
- public int getType() {
- return 4;
- }
-
- public String toString() {
- if (this.m_value == null) {
- return "OctetString (null)";
- } else {
- String var1 = "";
-
- for(int var2 = 0; var2 < this.m_value.length; ++var2) {
- if (var2 != 0) {
- var1 = var1 + " ";
- }
-
- var1 = var1 + ((BERElement)this).byteToHexString(this.m_value[var2]);
- }
-
- return "OctetString {" + var1 + "}";
- }
- }
- }
-